﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.ServiceProcess;

namespace UnrarService
{
    [RunInstaller(true)]
    public class UnrarServiceInstaller : Installer
    {
        private readonly ServiceInstaller _thisService;
        private readonly ServiceProcessInstaller _thisServiceProcess;

        /// <summary>
        /// Wird für das Installieren des Services benötigt
        /// </summary>
        public UnrarServiceInstaller()
        {
            //Wenn unser WS als kompilierte EXE Datei vorliegt können wir diese dann durch einen simplen aufruf von "installutil dateiname.exe" installieren. 
            //Dies funktioniert, weil wir das Attribut "RunInstaller" angegeben haben und das "installutil" mittels Reflection nachsieht welche Klasse dieses besitzt, diese dann lädt und ausführt.

            _thisService = new ServiceInstaller();
            _thisServiceProcess = new ServiceProcessInstaller();

            _thisServiceProcess.Account = ServiceAccount.LocalSystem;
            _thisService.StartType = ServiceStartMode.Automatic;
            _thisService.ServiceName = "Unrar Service";

            Installers.Add(_thisService);
            Installers.Add(_thisServiceProcess);
        }
    }
}
